// function TodoItem(id, title, isCompleted) {
//   this.id = id;
//   this.title = title;
//   this.isCompleted = isCompleted;
// }
// const todoList = [
//   new TodoItem(1, "Java", false),
//   new TodoItem(2, "Python", false),
//   new TodoItem(3, "C/C++", false),
//   new TodoItem(4, "Golang", false),
//   new TodoItem(5, "JavaScript", true),
// ];
// const todoListUL = document.getElementById("todoList");
// todoList.forEach((todoItem) => {
//   const li = document.createElement("li");
//   if (todoItem.isCompleted) {
//     li.classList.add("completed");
//   }
//   li.textContent = todoItem.title;
//   todoListUL.appendChild(li);
// });

class Todo {
  constructor() {
    this.todolist = [];
  }

  // 添加
  addTodo(title) {
    const newTodo = {
      id: this.todolist.length + 1, //从1开始递增
      title: title,
      isCompleted: false,
    };
    this.todolist.push(newTodo);
    this.renderList();
  }

  // 删除
  deleteTodo(id) {
    this.todolist = this.todolist.filter((todo) => todo.id !== id);
    this.renderList();
  }

  // 修改
  updateTodo(id, newTitle) {
    const todoIndex = this.todolist.findIndex((todo) => todo.id === id);
    if (todoIndex !== -1) {
      this.todolist[todoIndex].title = newTitle;
      this.renderList();
    }
  }

  // 标记完成方法
  toggleCompletion(id) {
    const todo = this.todolist.find((todo) => todo.id === id);
    if (todo) {
      todo.isCompleted = !todo.isCompleted;
      this.renderList();
    }
  }

  // 查询方法
  findTodoById(id) {
    return this.todolist.find((todo) => todo.id === id);
  }

  // 渲染列表
  renderList() {
    const todoListUL = document.getElementById("todoList");
    todoListUL.innerHTML = "";

    this.todolist.forEach((todo) => {
      const li = document.createElement("li");
      li.textContent = todo.title;

      // 添加一个复选框来表示是否完成
      const checkbox = document.createElement("input");
      checkbox.type = "checkbox";
      checkbox.checked = todo.isCompleted;
      if (todo.isCompleted) {
        li.classList.add("completed");
      }
      checkbox.addEventListener("change", () => this.toggleCompletion(todo.id));

      const deleteButton = document.createElement("button");
      deleteButton.textContent = "删除";
      deleteButton.addEventListener("click", () => this.deleteTodo(todo.id));

      li.appendChild(checkbox);
      li.appendChild(document.createTextNode(" "));
      li.appendChild(deleteButton);

      todoListUL.appendChild(li);
    });
  }
}

const todoApp = new Todo();
todoApp.addTodo("JavaScript");
todoApp.addTodo("Html");
todoApp.addTodo("Java");
todoApp.addTodo("Springboot");
todoApp.addTodo("Springcloud");
todoApp.toggleCompletion(2);
todoApp.renderList(); // 初始化渲染列表

document.addEventListener("DOMContentLoaded", function () {
  document.querySelector(".addclick").addEventListener("click", addTodo);

  document
    .querySelector("#search-form")
    .addEventListener("submit", function (event) {
      event.preventDefault();
      addTodo(event);
    });
});

function addTodo(event) {
  // if (event.target.tagName.toLowerCase() === 'a') {
  //   event.preventDefault();
  // }

  var inputValue = document.getElementById("search-input").value;

  inputValue = inputValue.trim();
  if (inputValue) {
    todoApp.addTodo(inputValue);
    document.getElementById("search-input").value = "";
  }
  return false;
}
